1. Field
One or more aspects of embodiments according to the present invention relate to zoom and offset of digital images, and more particularly to a system and method of interpolating between pixels.
2. Description of Related Art
When viewing a digital image with a viewing device, such as a display, that has a different number of pixels than the image, the original image may be cropped if it is larger than the display, or, if the original image is smaller than the display, it may be displayed on a portion of the display with the remainder of the display not used for the original image, and, e.g., left blank or filled with a different, background image. Neither of these approaches provides an optimal display image for the viewer, with the former hiding portions of the image from the viewer, and the latter providing an image that does not use the full viewing area of the display. In such cases it is desirable to resize the original image to fit the display. This will in general require a process known as interpolating between pixels of the original image, referred to herein as the input image, to form the image to be displayed, referred to herein as the output image, i.e., to find an appropriate pixel value for each color to be displayed in each pixel of the display. Interpolation may also be used to allow a viewer to zoom in on a portion of an image, or to pan a display, which is showing only a part of an image, across the image. In such applications interpolation may be helpful to allow a continuous range of zoom and pan settings. Interpolation may be applied repeatedly to form a new image, referred to herein as an output image, from the original image.
Such interpolation may for example be accomplished using a digital filter. A high performance filter, however, may use a 7×7 portion of the image around each pixel to be interpolated and may require a large table of intermediate coefficient values. These coefficients may change depending on the input data phase. This technique therefore places significant computational load on an image processing system. Moreover, it may support only a limited number of pre-programmed zooms or offsets, i.e., pan settings.
Interpolation may also be accomplished using bilinear interpolation, which supports continuous pan and zoom, but is not suitable for high performance imaging, because of the inferior image quality it produces. Bicubic piecewise polynomial spline techniques outperform bilinear interpolation but nonetheless do not provide ideal image quality. Thus, a system and method for interpolation which provides good image quality without imposing heavy computational loads is needed.